import apiClient from './config'

/**
 * 用户认证相关 API
 */
export const authAPI = {
  /**
   * 用户登录
   * @param {Object} credentials - 登录凭据
   * @param {string} credentials.username - 用户名
   * @param {string} credentials.password - 密码
   * @returns {Promise} 登录结果
   */
  login(credentials) {
    return apiClient.post('/auth/login', credentials)
  },

  /**
   * 用户注册
   * @param {Object} userData - 用户注册数据
   * @param {string} userData.username - 用户名
   * @param {string} userData.password - 密码
   * @param {string} userData.realName - 真实姓名
   * @param {string} userData.phone - 手机号
   * @param {string} userData.email - 邮箱
   * @param {string} userData.address - 地址
   * @returns {Promise} 注册结果
   */
  register(userData) {
    return apiClient.post('/auth/register', userData)
  },

  /**
   * 用户登出
   * @returns {Promise} 登出结果
   */
  logout() {
    return apiClient.post('/auth/logout')
  },

  /**
   * 刷新token
   * @returns {Promise} 新的token
   */
  refreshToken() {
    return apiClient.post('/auth/refresh')
  },

  /**
   * 获取当前用户信息
   * @returns {Promise} 用户信息
   */
  getCurrentUser() {
    return apiClient.get('/auth/me')
  },

  /**
   * 修改密码
   * @param {Object} passwordData - 密码数据
   * @param {string} passwordData.oldPassword - 旧密码
   * @param {string} passwordData.newPassword - 新密码
   * @returns {Promise} 修改结果
   */
  changePassword(passwordData) {
    return apiClient.put('/auth/password', passwordData)
  },

  /**
   * 忘记密码
   * @param {string} phone - 手机号
   * @returns {Promise} 重置结果
   */
  forgotPassword(phone) {
    return apiClient.post('/auth/forgot-password', { phone })
  },

  /**
   * 重置密码
   * @param {Object} resetData - 重置数据
   * @param {string} resetData.phone - 手机号
   * @param {string} resetData.code - 验证码
   * @param {string} resetData.newPassword - 新密码
   * @returns {Promise} 重置结果
   */
  resetPassword(resetData) {
    return apiClient.post('/auth/reset-password', resetData)
  }
}
